home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1993 July / Internet Tools.iso / RockRidge / news / nntp / nntplink3.1.0 / sig.c < prev    next >
Encoding:
C/C++ Source or Header  |  1992-10-25  |  1.1 KB  |  69 lines

  1. #include <signal.h>
  2. #include "conf.h"
  3. #ifdef FAKESYSLOG
  4. #include "fsyslog.h"
  5. #else
  6. #include <syslog.h>
  7. #endif
  8. #include "readline.h"
  9. #include "nntplink.h"
  10.  
  11. extern Boolean Debug;
  12. extern int Input_from;
  13. extern Boolean One_shot;
  14.  
  15. extern Boolean Reset_log;
  16.  
  17. Boolean Abort_signaled = FALSE;
  18. Boolean Reset_signaled = FALSE;
  19.  
  20. extern void fail();
  21. extern void log();
  22.  
  23. void
  24.   sighandler(sig)
  25. int sig;
  26. {
  27.     static char *fname = "sighandler: ";
  28.  
  29. #ifdef BROKEN_SIGNAL
  30.     signal(sig, SIG_IGN);
  31.     signal(sig, sighandler);
  32. #endif
  33.  
  34.     dlog(LOG_DEBUG, fname, "%s%s: received signal %d\n", Host.name, sig);
  35.  
  36.     switch(sig) {
  37.       case SIGINT:
  38.       case SIGTERM:
  39.     Abort_signaled = TRUE;
  40.     break;
  41.  
  42.       case SIGHUP:
  43.     if (One_shot)
  44.       Abort_signaled = TRUE;
  45.     else if ( ! (Input_from & FLG_BATCHFILE))
  46.       Reset_signaled = TRUE;
  47.  
  48. #ifdef FAKESYSLOG
  49.       case SIGUSR1:
  50.     Reset_log = TRUE;
  51. #endif
  52.     
  53.     break;
  54.  
  55.       case SIGPIPE:
  56. #ifdef SIGURG
  57.       case SIGURG:
  58. #endif
  59.     log(LOG_DEBUG, fname, "%s%s: received signal %d - continuing\n",
  60.         Host.name, sig);
  61.     break;
  62.  
  63.       default:
  64.     fail(fname, "%s%s: Received unknown signal %d\n", Host.name, sig);
  65.     /*NOTREACHED*/
  66.     }
  67.     return;
  68. }
  69.